|
Autocad VBA : Vorhandene Zeichnung Skalieren, Positionieren und anschließend Exceltabelle einfügen
Huebi am 02.03.2005 um 16:34 Uhr (0)
Na Gott sei s gedankt!!!! Ich freu mich mit Dir Franjo, daß es nun endlich klappt. Bekommst auch 10 Pünktchen dafür *smile* Gruß aus München Hübi ------------------ Schaun ma mal, dann seng ma scho....
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Vorhandene Zeichnung Skalieren, Positionieren und anschließend Exceltabelle einfügen
Huebi am 01.03.2005 um 14:24 Uhr (0)
Servus CoXiDo, Also zuerstmal: Mein Name is Huebi und nicht Hubi!!!!! *lach*, ich bitte um Beachtung. Zum zweiten gebe ich Dir den Rat das Programm erst in VBA für AutoCAD zu erstellen. Da hast Du den vollen Zugriff auf die (sehr umfangreiche und mit Beispielen gut dokumentierte) Hilfe. Wenn s läuft kannst Du s ja dann nach VB6 portieren. Beim übertragen nach VB6 mußt Du natürlich auch an die Verweise denken (aber das weißt Du ja sicher). Nun zu Deinem Code: Du öffnest eine AutoCAD Zeichnung namens AcDo ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Vorhandene Zeichnung Skalieren, Positionieren und anschließend Exceltabelle einfügen
Huebi am 28.02.2005 um 17:04 Uhr (0)
Servus CoXiDo, Zitat: Also als erstes, ich programmiere ja mit VB6 und nicht mit dem vom Autocad mitgelierferten VBA. Daher kann ich solche Objekte wie ThisDrawing und die Methode SendCommand nicht benutzen bzw. finden. Du benutzt doch die Variable acadDoc die Du auch als AutoCAD-Document in Deinem VB6 Programm definierst. Nun nimm einfach den Namen ThisDrawing und ersetze es mit Deinem acadDoc und schon sollte es funktionieren. Hier mal ein Schnellschuß in VB6: Code: Private Sub Command1_Cl ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Vorhandene Zeichnung Skalieren, Positionieren und anschließend Exceltabelle einfügen
Huebi am 28.02.2005 um 14:11 Uhr (0)
Hallo CoXiDo, ich denke, zuerst brauchst Du die Maximalwerte (Ausdehnung) Deiner Zeichnung um sie skalieren zu können. Schau Dir dazu mal diesen Beitrag an: http://ww3.cad.de/foren/ubb/Forum259/HTML/000520.shtml Den Befehl _scale und _move machst Du am besten via SendCommand z.B. so (unter der Annahme, Deine Zeichungseinheit entspricht 1mm): Code: Dim AllMin, AllMax As Variant Die zuvor ermittelten Maximalwerte Dim XMinStr, YMinStr, ScaleFaktor As String Const SollHoehe = 146 ScaleFaktor = ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Vorhandene Zeichnung Skalieren, Positionieren und anschließend Exceltabelle einfügen
Huebi am 01.03.2005 um 16:22 Uhr (0)
Servus Franjo, ich glaub Dir schon, daß Du bald am Verzweifeln bist (armer Kerl). Ich vermute mal, daß es etwas mit der AutoCAD-Release zu tun haben könnte. Evtl. unterstützt ja Vers. 14 die Methode object.ScaleEntity nicht (das wär eine Frage für die 14-Anwender - bitte melden!!). Naja, als Workaoround kann ich Dich nur auf meinen ersten Beitrag verweisen (SendCommand). Das sollte doch funktionieren - ist ja recht robust *lach*. Vielleicht kann Dir ja jemand anders weiterhelfen - ich für meinen Teil bin ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Vorhandene Zeichnung Skalieren, Positionieren und anschließend Exceltabelle einfügen
Huebi am 01.03.2005 um 15:32 Uhr (0)
Menno Franjo! Gehst Du mal in Einzelschritten durch das Programm? Guckst Du Dir die Variablen im Überwachungsfenster an ob sie gefüllt werden? Hast Du in VB6 den Verweis auf AutoCAD gesetzt? Wann ist eine Variable leer und wann gefüllt? Funktioniert überhaupt das Starten von AutoCAD und das Öffnen der Datei? Hast Du den Code mal in VBA für AutoCAD angeguckt? Fragen über Fragen. Geht nicht gibt s nicht. Bei mir klappt s hervorragend. Wenn Du willst, daß man Dir hilft (und ich hab s Dir wirklich schon vor ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Vorhandene Zeichnung Skalieren, Positionieren und anschließend Exceltabelle einfügen
Huebi am 28.02.2005 um 10:38 Uhr (0)
Servus CoXiDo, erstmal wilkommen im Forum! Ohne AutoCAD Kenntnisse wirst Du Dir sehr hart tun bei dem was Du vor hast, da VBA für AutoCAD natürlich an den Methoden und Funktionen in AutoCAD zusammenhängt. Zuerst versuche doch mal zu beschreiben, wie Du das, was Du machen möchtest, manuell in AuoCAD machen würdest. Es klingt so, als möchtest Du einen Ausschnittplot verkleinert auf ein festes Format bringen und dazu via OLE eine Excel-Tabelle einblenden. Das mit dem Einblenden von Excel-Tabellen wurde schon ...
|
| In das Form Autocad VBA wechseln |
|
AutoCAD VBA : AutoCad-Dialoge über VBA aufrufen
Huebi am 15.04.2008 um 18:15 Uhr (0)
Hallo Jürgen,ich hab ja noch nicht wirklich verstanden, was Du machen möchtest.Falls Du "nur" den Pfad und den Namen der Zeichnung ermitteln möchtest, geht das ganz einfach mit:ThisDrawing.Name bzw Thisdrawing.PathFalls Du jedoch den Windows-Dateidialog öffnen möchtest, empfehle ich Dir den CommonDialog.Einen umfassenden Beitrag zu diesem Thema findest Du hierIch hoffe, es hat Dir ein bischen weitergeholfen.Gruß aus München,Hübi
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : ObjectIDToObject - Fehler: Method...failed
Huebi am 06.05.2008 um 16:18 Uhr (0)
Hallo Peter,ich vermute mal, dass Du mit der ObjectID von extern auf AutoCAD Elemente zugreifen möchtest.Für diesen Zweck solltest Du aber nicht die ObjectID nutzen sondern den "Handle".Die ObjectID wird beim Öffnen einer Zeichnung jedesmal neu vergeben. Der Handle bleibt für jedes Element bestehen und eignet sich daher hervorragend, um z.B. von Excel aus auf bestimmte Zeichnungelemente in AutoCAD zuzugreifen (z.B. um drauf zu zoomen usw.)Die dazugehörige Methode heißt "HandleToObject" und funktioniert gen ...
|
| In das Form AutoCAD VBA wechseln |
|
Autocad VBA : Block einfügen
Huebi am 05.04.2005 um 10:22 Uhr (0)
Servus Ines, was definitiv nicht geht ist, daß Du die Blöcke ständig "umdefinierst". Was allerdings möglich ist, daß Du ein Insert unterschiedlich skalierst (z.B. x-Faktor = 2.78, y-Faktor=1, z-Faktor=1). Ob das allerdings das richtige in Deinem Fall ist, weiß ich nicht. Warum möchtest Du eigentlich Blöcke verwenden wenn sie nur einmal in der Zeichung auftauchen? Als Zusammenschluß mehrerer AutoCAD Elemente gibt s auch die Möglichkeit Gruppen zu bilden (was allerdings nicht weniger Aufwand ist). Außerdem s ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Block einfügen
Huebi am 05.04.2005 um 09:20 Uhr (0)
Servus Ines, ich glaube, daß Du AcadBlock und AcadBlockReference durcheinander bringst (ist mir anfangs auch ein bisserl schwer gefallen). Ein AcadBlock wird (im Normalfall) einmal definiert als ein Zusammenschluß von verschiedenen AutoCAD Elementen. Der Block hat einen eindeutigen Namen. Ein neuer Block muß daher einen neuen Namen haben. Wenn Du das einmal gemacht hast, kannst Du diesen Block x-fach in die Zeichnung einfügen (AcadBlockReference - InsertBlock). Dabei kannst Du die Einfügeposition, die Dreh ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Geometrie einer Bemassung
Huebi am 18.01.2005 um 14:56 Uhr (0)
Servus @ Alle hier also der Programmcode. Ich bin einen Umweg über eine DXF-Datei gegangen, da die Bezugspunkte hier offen (wenn auch in Ihrer Genauigkeit eingeschränkt) liegen. Ich hoffe, der Eine oder Andere kann was damit anfangen Sub Bemassungsmarkierung() Dim DummyLayer As AcadLayer Dim FileName As String Dim ActSSet As AcadSelectionSet Dim FilterType(0) As Integer Dim FilterData(0) As Variant Dim Code As Integer Dim CodeStr, Data As String Dim BemAktiv, BemWrite As Boolean Dim BezPkt(3) As Double ...
|
| In das Form Autocad VBA wechseln |